# How to install Linux Libre in Fedora

Fedora has the Linux kernel. This instruction is to install Linux Libre kernel which is a version of the Linux kernel with closed source binary blobs removed. This results in a Free-er system which respects your [4 essential freedoms](https://gnu.org). On Fedora, the linux libre kernel has the name "Freed-ora freedom".

I tried this on a Fedora 30 install.

**WARNING:** Although this gives you a libre kernel, it is possible that all components of your hardware does not work without binary blobs (e.g. wifi card, bluetooth). In that case those components will not work after installation. Please do not apply this on a production install before testing thoroughly and for prolonged period of time on a test install. Use these instructions at your own risk. Backing up is also recommended.

```
sudo -s
rpm --import http://linux-libre.fsfla.org/pub/linux-libre/SIGNING-KEY.linux-libre
rpm -i http://linux-libre.fsfla.org/pub/linux-libre/freed-ora/freed-ora-release.noarch.rpm
yum -y install freed-ora-freedom
```

The last one might complain about some conflicting packages, like this:

```
...
Problem: problem with installed package zd1211-firmware-1.5-4.fc30.noarch
  - package freed-ora-freedom-14-1.noarch conflicts with zd1211-firmware provided by zd1211-firmware-1.5-4.fc30.noarch
...
```

So I removed the `-firmware` package:

```
yum remove -y zd1211-firmware
```

I ran `yum -y install freed-ora-freedom` again, again it conflicts with some package, I removed it too.
I repeated this a couple of times.
Remove `-firmware` packages without worry. But be careful for kernel packages (coming later).

I had to remove:

```
zd1211-firmware
ipw2200-firmware
ipw2100-firmware
atmel-firmware
microcode_ctl
linux-firmware
xorg-x11-drv-ati-firmware
libertas-usb8388-firmware
iwl7260-firmware
iwl6050-firmware
iwl6000g2b-firmware
iwl6000g2a-firmware
iwl6000-firmware
iwl5150-firmware
iwl5000-firmware
iwl4965-firmware
iwl3945-firmware
iwl3160-firmware
iwl2030-firmware
iwl2000-firmware
iwl135-firmware
iwl105-firmware
iwl1000-firmware
iwl100-firmware
```

When the firmwares are removed, run `yum -y install freed-ora-freedom` again. The install process will go halfway, but not complete. It will show Error messages like:

```
...
Error: kernel-core-5.2.8-200.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-modules-5.2.8-200.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-5.0.9-301.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-modules-extra-5.0.9-301.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-5.2.8-200.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-core-5.0.9-301.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-modules-extra-5.2.8-200.fc30.x86_64 conflicts with freed-ora-freedom
Error: kernel-modules-5.0.9-301.fc30.x86_64 conflicts with freed-ora-freedom
...
```

Now install `-libre` packages for these. Libre packages will need to add `-libre` after the `kernel` part in the package name that are there in the above code block.
e.g. previous `kernel-core` package will become `kernel-libre-core` in Freed-ora freedom.

```
sudo yum install kernel-libre-core kernel-libre-modules kernel-libre-modules-extra
```

Make the newly-installed kernel-libre the default for the next boot:

```
grubby --set-default=`ls -t /boot/vmlinuz-*libre* | sed 1q`
```

Then reboot. If you don't reboot, you will see a `Problem: The operation would result in removing the following protected packages: kernel-core` error when removing the packages.

When you reboot you should see the new "libre" kernel entry in the GRUB menu.

Now you can remove the `kernel-` packages:

```
sudo yum remove kernel-core kernel-modules kernel-modules-extra
```

Now try `uname -r`. It should say something like `5.2.8-libre.200.fc30.gnu.x86_64`. Haha... Libre, baby!

Enjoy freedom!


Ref: [https://www.fsfla.org/ikiwiki/selibre/linux-libre/freed-ora.en.html](https://www.fsfla.org/ikiwiki/selibre/linux-libre/freed-ora.en.html)

